package tech.aistar.corejava.day11;

import com.sun.org.apache.xpath.internal.SourceTree;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * Created by 豆梦寒 on 2019/7/29.
 */
public class ArrayListMethodDemo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("a");
        list.add("c");
        list.add("d");

        System.out.println(list);
        //清空集合
        //list.clear();

        //判断集合中是否存在元素
        System.out.println(list.isEmpty());//false

        //获取集合中的元素的个数
        System.out.println(list.size());//5

        //根据下标获取  大于它的下标长度时会抛出一个下标越界异常
        System.out.println(list.get(1));

        //找出集合中的某个元素第一次出现的位置
        System.out.println(list.indexOf("a"));

        //判断集合中是否包含某个元素
        //boolean类型
        //list.remove(Object obj)
        list.remove("a");
        System.out.println(list);

        //根据下标进行移除
        //E remove(int index);//返回刚刚删除的元素
        list.remove(1);

        //关于集合的遍历
        // 直接输出
        //通过普通for循环进行遍历
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));//根据下标获取元素
        }

        //增强for循环
        for (String e:list) {
            System.out.println(e);
        }

        //迭代器，JCF特有的一种迭代方式，采用的是迭代器模式
        Iterator<String> iter = list.iterator();

        //如果仍有元素可以被迭代，则返回true，否则返回false；
        while (iter.hasNext()){
            String e = iter.next();
            System.out.println(e);
        }

    }
}
